Field of the Invention
The present invention relates to a priority encoder useful in content addressable memory systems.
Priority encoders are electronic logic circuits that determine which of a number of inputs has the highest or lowest priority. Priority encoders are used in a number of computer systems, as well as other applications. Priority encoders can be utilized in conjunction with Content Addressable Memory (CAM), for example.
CAM can be used to perform fast address searches. For example, Internet routers often include a CAM for searching an address containing specified data. Thus, CAMs allow routers to perform high speed address searches to facilitate more efficient communication between computer systems over computer networks. Besides routers, CAMs are also utilized in such areas as databases, network adapters, image processing, voice recognition applications, and others.
In contrast to random access memory (RAM), which returns data in response to requests, CAM returns address locations. In a typical application, a CAM memory array generates a match signal on a match line which may be provided to a priority encoder so that an address corresponding to the highest priority match can be determined for the data being searched. As but one example, a priority encoder can determine the highest priority match from among 128K match inputs. Consequently, priority encoder size and speed of operation are particularly crucial when used in CAM applications.
Priority encoders often operate like a “thermometer” in determining which of the match results has the highest priority. A conventional thermometer priority encoder is shown in FIG. 1 in which match inputs from respective match lines are applied to terminals P_N0 through P_N4, or higher. The match line that indicates a match on inputs P_N0 . . . P_N4 which has the highest priority will cause the lowest output terminal T0 . . . T4 to change states indicating a match. As shown in FIG. 1, thermometer priority encoder 2 utilizes an arrangement of logic gates to determine which of the inputs has the highest priority.
Since CAMs are becoming more powerful in their ability to perform large searches more rapidly, each search can generate many search results which then need to be quickly processed through a priority encoder to ascertain the match with the highest priority.
This requires an increased complexity and size of the logic circuit of the priority encoder, accompanied by a reduction in its encoding speed. In addition, power consumption necessarily increases as the size of the priority encoder increases. The increased power consumption is generally due to the fact that the priority encoder requires all of the logic blocks in different stages to turn ON, even when only one block in a given stage is actually contributing to the priority encoding process.
A low power smaller size priority encoder which can provide increased operational speed is needed.